iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0
SideProject30

python基礎及數據科學之應用系列 第 21

python基礎及數據科學之應用day 21[tkinter資料庫介紹2]

  • 分享至 

  • xImage
  •  

day 21:
/images/emoticon/emoticon07.gif
希望瀏覽數可以多點啦,更多人看我的教學後有所增長

將視窗的背景顏色變更為對應的顏色

什麼是window.config

window.config()方法用於配置視窗或小部件的各種屬性或特性。它允許您透過更改其配置選項來修改視窗或小部件的外觀和行為。

window.config()部分參數介绍

配置 用途
bg 背景顏色
fg 文字顏色
width 小部件的寬度
height 小部件的高度
font 文字的字體樣式和大小
command 發生事件(例如單擊按鈕)時呼叫的function
範例:
from tkinter import *

def msgcolor(bgcolor):
  
  window.config(bg=bgcolor)

window = Tk()
window.title("change color")
window.geometry("300x300")

btn3 = Button(window,text="green",command=lambda:msgcolor("green"))
btn2 = Button(window,text="yellow",command=lambda:msgcolor("yellow"))
btn = Button(window,text="red",command=lambda:msgcolor("red"))


btn.grid(row=0,column=0)
btn2.grid(row=1,column=0)
btn3.grid(row=2,column=0)

window.mainloop()

執行結果:
https://ithelp.ithome.com.tw/upload/images/20231006/20163173MmjwQVTa7e.png

Entry小工具

什麼是entry()

Entry()用於建立單行文字輸入字段,使用者可以在其中輸入文字或數字。它提供了一種基本的輸入機制,用於在圖形使用者介面中獲取使用者輸入。

範例:
from tkinter import *

window = Tk()
window.title("input box of tkinter")

def login():
    print(f"name : {name_input.get()}")
    print(f"password : {password_input.get()}")


name = Label(window, text="name")
name.grid(row=0, column=0)
password = Label(window, text="password")
password.grid(row=1, column=0)

name_input = Entry(window)
name_input.grid(row=0, column=1)

password_input = Entry(window, show="*")
password_input.grid(row=1, column=1)

btn = Button(window, text="login", command=login)
btn.grid(row=2, column=0)

desbtn = Button(window,text="QUIT",command=window.destroy)
desbtn.grid(sticky="w",row=2,column=1)

window.mainloop()

執行結果:
https://ithelp.ithome.com.tw/upload/images/20231006/201631735qYaW3VH9c.png
console:

name : carson
password : never gonna give you up

sticky

配置 用途
N 將小部件與單元格頂部對齊。
S 將小部件與單元格底部對齊。
E 將小部件與單元格右側對齊。
W 將小部件與單元格左側對齊。

window.destroy

window.destroy用於終止mainloop循環並銷毀窗口

Entry.get()

name_input.get(),password_input.get()是今次的例子

顯示照片

我們這次使用的照片:
https://ithelp.ithome.com.tw/upload/images/20231006/20163173LPLrEch1zp.png

範例:
from tkinter import *

window = Tk()
window.title("Show Photo")

photo = PhotoImage(file="b.png")
p = Label(window, image=photo)

p.grid(row=0, column=0)

window.mainloop()

執行結果:
https://ithelp.ithome.com.tw/upload/images/20231006/20163173RX2OP45XVV.png

PhotoImage

PhotoImage用於表示可以在 Tkinter 視窗中顯示的影像物件,允許您加載各種格式的圖像文件,例如 GIF、PGM、PPM 和 PNG。

image=photo

Label小工具可以使用該參數顯示影像image

設定圖示

您能指定圖示檔案的路徑來為視窗設定自訂圖示。圖示檔案應採用以下.ico格式。

範例:
from tkinter import *
window = Tk()

photo = PhotoImage(file = "b.png")
window.iconphoto(False, photo)

window.mainloop()

執行結果:
https://ithelp.ithome.com.tw/upload/images/20231006/20163173gQoFZyx0rR.png

選擇按鈕

如果您想讓使用者選擇一個選項,您可以使用Radiobutton。

範例:
from tkinter import *

window = Tk()
window.title("Radiobutton Example")

# 用於儲存所選選項的變數
selected_option = StringVar()

def handle_selection():
    print("Selected option:", selected_option.get())

#建立單選按鈕小工具
radio_button1 = Radiobutton(window, text="Option A", variable=selected_option, value="Option A")
radio_button2 = Radiobutton(window, text="Option B", variable=selected_option, value="Option B")
radio_button3 = Radiobutton(window, text="Option C", variable=selected_option, value="Option C")

#設定預設選擇
selected_option.set("Option A")

#建立一個按鈕來列印所選選項
btn = Button(window, text="Print Selection", command=handle_selection)

radio_button1.grid(row=0,column=0)
radio_button2.grid(row=1,column=0)
radio_button3.grid(row=2,column=0)
btn.grid(row=3,column=0)

window.mainloop()

執行結果:
https://ithelp.ithome.com.tw/upload/images/20231006/20163173nwYgnItBFW.png

console:

>>Selected option: Option B

Radiobutton

Radiobutton提供一個按鈕供使用者從小部件中選擇選項

StringVar()

StringVar()可以保存字串值的變數。

/images/emoticon/emoticon62.gif
今天的有趣內容到這裏,如果覺得我的文章對你有幫助或有更好的建議,可以追蹤我和不妨在留言區提出,我們明天再見。

reference:
https://poe.com


上一篇
python基礎及數據科學之應用day 20[tkinter資料庫介紹]
下一篇
python基礎及數據科學之應用day 21[tkinter資料庫介紹3(對話方塊及匯出專案)]
系列文
python基礎及數據科學之應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言